Visualización de mapas

Residencia de Epidemiología

Datos espaciales

  • Todo dataframe espacial de clase sf tiene una variable donde se ubica la geometría que define lo que representa (punto, línea o polígono)
  • Asociada a la geometría siempre hay una variable con el ID de la geometría (que la identifica).
  • Los atributos son datos que deseamos visualizar espacial y gráficamente vinculados a esos ID.
  • Por lo tanto, la tabla de datos de esas variables (atributos) deben tener el mismo ID que la parte espacial para poder unirlas.
  • Ejemplo de ID nomenclados: códigos estadísticos del INDEC en polígonos (provincia, departamento, etc)

Datos espaciales


  • Datos de área: datos agregados dentro de áreas o polígonos. Mapas corópleticos

  • Datos geoestadísticos: variables continuas que se desarrollan sobre el territorio. Métodos de interpolación. Predicción de valores

  • Patrones de punto: variables asociadas a puntos. Conteo de eventos. Proceso espacial subyacente que origina el patrón de puntos y evaluación si este presenta aleatoriedad, agrupamiento o regularidad.

Visualización espacial de datos de salud


Dentro de los formatos vectoriales, habitualmente los datos de salud que deseamos visualizar, en forma directa, son agregados o resumidos a un área determinada. Por ejemplo: indicadores pertenecientes a un departamento o provincia, como una tasa o un promedio para un determinado año.

Variables medioambientales, como contaminación atmosférica de estaciones de monitores o de suelo donde a partir de una muestra se predice toda la matriz del área. . . .

Patrones de puntos, como accidentes tránsito, casos de una enfermedad, etc. (cuidado con la confidencialidad de los datos cuando se trate de individuos - se suelen crear mapas de calor u otra transformación para anonimizar datos).

Mapas de áreas


  • Mapas de densidad de puntos: cada área está asociada a un atributo resumido que cuantifica la variable. Los puntos se visualizan al azar sobre el área. Cuantos más puntos haya en un área determinada, mayor será el valor del atributo en esa área. Pueden ser muy engañosos en aplicaciones de salud pública, ya que es fácil que quienes los leen asuman que cada punto representa la ubicación real de un evento.
  • Mapas de símbolos: se ubica un símbolo en el centro de cada región y el valor del atributo asociado a cada característica se indica mediante el tamaño del símbolo. También se suele mostrar un gráfico de sectores o de barras por cada área.
  • Mapas coropléticos

Ejemplos


Mapas de densidad de puntos


Mapas de símbolos


Mapas coropléticos


  • Son el tipo más común para la visualización de datos de área.
  • Utilizan diferentes combinaciones de colores y patrones para representar diferentes valores de la variable de atributo asociada con cada área.
  • Cada área se colorea según la categoría a la que pertenece su valor de atributo.
  • Generalmente incluyen una leyenda que determina la escala de colores/intensindades.
  • Predominan en estudios de salud publica.

Escalas

  • Continuas: representan variables numéricas contínuas con colores en gradientes del tono más claro (blanco) al más oscuro (negro).
  • Discretas: representan variables categóricas o variables numéricas contínuas categorizadas en intervalos de clase. Estos intervalos se construyen de distintas formas (divisiones regulares, por cuantiles, métodos estadísticos para puntos de corte, etc)

Entre los métodos más complejos de creación de puntos de corte encontramos:

  • Optimización de Jenks: agrupa intervalos minimizando la varianza dentro de cada clase y maximizandola entre ellas.

  • kmeans: utliza de clasificación no supervisada (agrupamiento) de kmeans para determinar los intervalos.

  • hclust: usa el clustering jerarquico para generar los saltos de intervalos en la escala.

Ejemplos coropléticos


Mapas coropléticos - escala contínua


Mapas coropléticos - escala discreta


Elementos visuales: variables


  • color de relleno (se utiliza en polígonos)
  • color de contorno (se usa tanto en puntos y lineas, como en contornos de polígonos)
  • ancho de línea
  • tipo de línea (contínua o conformada por otros caracteres)
  • tamaño (simbolos, puntos, etc)
  • forma (forma de un simbolo)
  • transparencia (elemento visual que, en general, no se utiliza para representar variables)

Mapas estáticos e interactivos


Hay dos posibilidades de creación de mapas: salidas estáticas y salidas dinámicas (web)

  • Las estáticas suelen utilizar fuentes locales de datos y se guardan como jpg, png o pdf.
  • Las dinámicas / interactivas, necesaria son web. Es decir, archivos html, que generalmente conectan con servidores de mapas (fuente externa). Permiten navegar por el mapa, hacer zoom, seleccionar objetos y todas las cosas que el creador de la salida le incorpore.

Mapas de puntos


  • Representan observaciones puntuales georeferenciadas con latitud y longitud, o en su defecto ubicadas en un domicilio dentro de una capa “callejera”.
  • Muchas veces no se pueden compartir / publicar debido a la confidencialidad de los datos. Por lo tanto se construyen mapas de calor, densidad de kernel o distintas transformaciones dentro del análisis espacial de patrones de puntos.
  • Exige georeferenciar previamente las observaciones (obtener las coordenadas de cada ubicación).

Ejemplos

Mapas de puntos georreferenciados


Mapas de puntos - mapa de calor


Visualización de capas raster


  • Se pueden visualizar capas raster únicas o junto a capas vectoriales.

  • El paquete terra y el paquete stars contiene las dos posibilidades. No así sf que es solo vectorial.

  • No se utiliza mucho en salud, salvo cuando se abordan elementos ambientales como tipo de suelo, temperaturas, etc que se capturan y procesan con imágenes satelitales y fotos areas.

  • El procesamiento de las capas raster es totalmente diferente a el caso vectorial, donde tenemos una matriz de elementos y variables (atributos) relacionadas. Aquí es la misma imagen, conformada por pixeles de un determinado tamaño la que se vincula con el atributo. Hay tantas imágenes como atributos / temporalidad se haya capturado. Por ejemplo, cada pixel representa a una temperatura en un momento dado.

Elementos importantes en un mapa


  • Título adecuado (que informe sobre tiempo, lugar y persona)
  • Leyenda informativa (que haga entendible el mapa)
  • Rosa de los vientos (representa los puntos cardinales e indica el norte)
  • Escala (indica la relación de distancias de un mapa y las distancias reales)
  • Fuente de datos y proyección (fuente de la información, similar a un gráfico estadístico. Algunos mapas, además, expresan su proyección)

Paquete tmap


  • Se basa en la gramática de gráficos del ggplot2 aplicada a mapas

  • El código se construye por “capas” unidas con un simbolo +

  • Todas las funciones comienzan con tm_

  • La función principal es tm_shape() que define los datos de entrada (permite objetos vectoriales y raster)

  • Le sigue alguna definición visual asociada a la geometría de la capa. tm_fill() para relleno de polígonos, tm_borders() para contornos de polígonos, tm_polygons() para polígonos completos, tm_symbols() para simbolos en puntos, etc.

tmap: modo de salidas



Con el paquetes tmap hay dos formas de setear la salida (se ejecuta previamente al código del mapa):

  • tmap_mode("plot"): modo estático (salida como imagen - jpg, png, pdf, etc -)


  • tmap_mode("view"): modo interactivo (salida como html dinámico)

tmap: escalas


Las escalas controlan cómo se representan los valores en el mapa y en la leyenda, y dependen en gran medida de la variable visual seleccionada

  • Por defecto, la escala utilizada es tm_scale(). Luego hay una familia de funciones para diferentes tipos de datos: tm_scale_continuous(), tm_scale_continuous_log(), tm_scale_categorical(), etc.

  • El argumento style define el estilo de la escala. En el caso de tm_scale_intervals() puede ser: “fixed”, “sd”, “equal”, “pretty”, “quantile”, “kmeans”, “hclust”, “bclust”, “fisher”, “jenks”, “dpih”, “headtails”, “maximum”, o “box”. Distintas formas de crear intervalos de clase.

  • Todas las escalas utilizan las paletas de colores de cols4all::palettes(), dependencia que es parte de tmap. Para visualizar los colores en una app de shiny: ejecutar `cols4all::c4a_gui()

tmap: diseño

El diseño del mapa se refiere a la combinación de todos sus elementos para formar un mapa coherente. Estos elementos incluyen, entre otros, los objetos que se van a representar, la cuadrícula, la barra de escala, el título y los márgenes.

Los elementos de mapa adicionales, como retículas, rosa de los vientos, barras de escala y títulos, tienen sus propias funciones:

  • tm_graticules(): incorpora cuadrículas

  • tm_compass(): setea la flecha del Norte (rosa de los vientos)

  • tm_scalebar(): agrega barra de escala y cambia su configración

  • tm_title(): maneja el título y su aspecto estético

  • tm_credits(): pie de mapa

tmap: ejemplo detallado


tm_shape(mapa_sf) +
    tm_polygons(
        fill = "variable",
        fill.scale = tm_scale_continuous(values = "-orange_blue_diverging"),
        fill.legend = tm_legend("", position = tm_pos_in("left", "top"))) + 
tm_title("Aquí va el títlo con el lugar y el año") +
tm_compass(position = tm_pos_in("left", "bottom")) +
tm_scalebar(position = tm_pos_in("left", "bottom")) +
tm_credits("Fuente de datos", position = tm_pos_in("left", "bottom"))

tmap: ejemplo detallado


tmap: interactivos


Algunas funciones están asociadas a salidas interactivas, es decir son útiles en modo “view” y no funcionan en modo “plot”.

Entre ellas encoentramos:

  • tm_basemap(): capa base del mapa obtenida de un proveedor web -se define dentro de la función-

  • Argumentos group y group.control: agrupa capas del mapa

  • Argumentos popup.vars, popup.format y hover: define que dato se muestra al pasar el mouse por la geometría y al hacer click.

Exportación


  • La función de exportación es tm_save() y permite guardar los mapas estáticos en archivos basados en pixeles como png, jpg o tiff y en formatos vectoriales como pdf, eps o svg.

  • También se puede exportar los mapas interactivos como html completos con el argumento selfcontained = FALSE en la función tm_save(). El html se genera junto a una carpeta local (index_file) con los archivos JavaScript y CSS necesarios (a veces suele ser bastante pesada)

  • La función tm_save() tiene además varios argumentos que nos permiten adaptar la salida en resolución, escala, alto y ancho del mapa

Paleta de colores


Existen varios paquetes en R que traen y/o gestionan paleta de colores para mapas.

Entre los mas usados encontramos:

Paleta de colores

  • Secuenciales (contínuas)
    • Sirven para mostrar datos numéricos ordenados, como fechas o valores ordenados
    • Utiliza colores que varían suavemente de claro a oscuro o viceversa
  • Divergentes (contínuas)
    • Combina dos paletas secuenciales con un punto final compartido en el valor central
    • Se utiliza a menudo para tener un tono para valores “positivos” y otro para valores “negativos”
  • Discretas (cualitativas)
    • Permite crear rangos con tamaños desiguales para representar mejor las diferencias en los datos

Paleta de colores


  • Paquetes como cols4all se integran con tmap (a partir de la versión 4)
  • Muchos de los paquetes contienen paletas compatibles con el daltonismo. Un paquete interensante para comprobar esta compatilidad es colorblindcheck
  • Las personas con deficiencia visual del color carecen de (al menos) un tipo de tono. En los tres tipos de daltonismo ( deuteranopía , protanopía y tritanopía) , los tonos ausentes son aquellos sensibles principalmente a las longitudes de onda media (verde), larga (rojo) y corta (azul), respectivamente. La percepción del color en estas personas se basa en los dos tipos de tonos restantes. Como resultado, las personas con deuteranopía y protanopía tienen dificultad para distinguir el verde del rojo, mientras que las personas con tritanopía apenas pueden distinguir el azul del amarillo